package com.qf.config;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

import javax.sql.DataSource;
import java.beans.PropertyVetoException;

/**
 * @Description: 公用常量
 * @Data: 2022/8/30 15:38
 * @Pacakge: com.qf.config
 * @ClassName: SpringConfig
 * @Author: fan
 */
/*
    @Configuration-->等同于@Component,声明当前类为配置类
    @ComponentScan-->作用等同于配置文件中的标签<context:component-scan>
                     通过注解指定Spring在创建容器时要扫描的包;
                     属性:value-->它与basePackage的作用是一样的,都是用于指定创建容器时要扫描的包
    @Bean-->用于把当前方法的返回值作为bean对象存入到spring的IOC容器中
            属性:name-->用于指定bean的id。当不写时,默认是当前方法的名称
    @Impart-->作用:用于导入其他的配置类
              属性:value:用于指定其他的配置类的字节码文件
    @Property-->作用:用于指定properties文件的位置
                属性:value:指定文件的名称和路径
                关键字:classpath:表示类路径下
    @RunWith-->把原有的main方法替换成由spring提供的main方法。
    @ContextConfiguration-->告知spring的运行器,spring和ioc创建基于xml还是注解的,
                            并且说明位置,使用ContextConfiguration注解说明。
                locations:指定xml文件的位置,加上classpath关键字,表示在类路径下。
                classes:指定注解类所在的位置。
 */
@Configuration
@ComponentScan(basePackages = "com.qf")
@Import(JdbcConfig.class)
public class SpringConfig {

}
